package com.powerbank.user.dto;

import lombok.Data;

import jakarta.validation.constraints.DecimalMin;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import java.math.BigDecimal;

/**
 * 创建支付订单DTO
 */
@Data
public class CreatePaymentDTO {

    /**
     * 关联订单ID
     */
    @NotNull(message = "订单ID不能为空")
    private Long orderId;

    /**
     * 支付类型：DEPOSIT-押金，FEE-费用，RECHARGE-充值
     */
    @NotBlank(message = "支付类型不能为空")
    private String paymentType;

    /**
     * 支付方式：WECHAT-微信，ALIPAY-支付宝，WALLET-钱包
     */
    @NotBlank(message = "支付方式不能为空")
    private String paymentMethod;

    /**
     * 支付金额
     */
    @NotNull(message = "支付金额不能为空")
    @DecimalMin(value = "0.01", message = "支付金额必须大于0")
    private BigDecimal paymentAmount;

    /**
     * 使用的优惠券ID（可选）
     */
    private Long couponId;

    /**
     * 客户端IP
     */
    private String clientIp;

    /**
     * 备注
     */
    private String remark;
}